home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / livecd.squashfs / usr / include / ewl / ewl_table.h < prev    next >
C/C++ Source or Header  |  2006-01-09  |  3KB  |  101 lines

  1. #ifndef __EWL_TABLE_H__
  2. #define __EWL_TABLE_H__
  3.  
  4. /**
  5.  * @file ewl_table.h
  6.  * @defgroup Ewl_Table Table: The Table Layout Container.
  7.  * @brief Defines the Ewl_Box class used for laying out Ewl_Widget's in a
  8.  * horizontal or vertical line.
  9.  *
  10.  * @{
  11.  */
  12.  
  13. /**
  14.  * @themekey /table/file
  15.  * @themekey /table/group
  16.  */
  17.  
  18. /**
  19.  * The table widget is an Ewl_Container used to lay out widgets in a grid like
  20.  * pattern with headers and alignment.
  21.  */
  22. typedef struct Ewl_Table Ewl_Table;
  23.  
  24. /**
  25.  * @def EWL_TABLE(table)
  26.  * Typecase a pointer to an Ewl_Table pointer.
  27.  */
  28. #define EWL_TABLE(table) ((Ewl_Table *)table)
  29.  
  30. struct Ewl_Table
  31. {
  32.     Ewl_Container   container;
  33.  
  34.     Ewl_Grid       *grid;
  35.  
  36.     char          **col_headers;
  37.  
  38.     int             row_select;    /* boolean: select entire rows */
  39.  
  40.         /*
  41.          * Flag indicating space assignment 
  42.          */
  43.         unsigned int    homogeneous_h;   /** Horizontal homogeneous flag */
  44.         unsigned int    homogeneous_v;   /** Vertical homogeneous flag */ 
  45.  
  46.     struct {
  47.         int             start_r;
  48.         int             start_c;
  49.         int             end_r;
  50.         int             end_c;
  51.     } selected;
  52.  
  53. };
  54.  
  55. Ewl_Widget     *ewl_table_new(int cols, int rows, char **col_headers);
  56. int             ewl_table_init(Ewl_Table *t, int cols, int rows,
  57.                    char **col_headers);
  58. void            ewl_table_add(Ewl_Table *table, Ewl_Widget *w, int start_col,
  59.                   int end_col, int start_row, int end_row);
  60. void            ewl_table_reset(Ewl_Table *t, int cols, int rows,
  61.                 char **c_headers);
  62. void            ewl_table_row_select(Ewl_Table *t, int boolean);
  63.  
  64. void            ewl_table_col_w_set(Ewl_Table *table, int col, int width);
  65. void            ewl_table_row_h_set(Ewl_Table *table, int row, int height);
  66.  
  67. void            ewl_table_col_w_get(Ewl_Table *table, int col, int *width);
  68. void            ewl_table_row_h_get(Ewl_Table *table, int row, int *height);
  69.  
  70. void            ewl_table_col_row_get(Ewl_Table *table, Ewl_Cell *cell,
  71.                       int *start_col, int *end_col,
  72.                       int *start_row, int *end_row);
  73.  
  74. Ecore_List       *ewl_table_find(Ewl_Table *table,
  75.                    int start_col,
  76.                    int end_col, int start_row, int emd_row);
  77.  
  78. char           *ewl_table_selected_get(Ewl_Table *table);
  79. void            ewl_table_homogeneous_set(Ewl_Table *table, unsigned int h);
  80. void            ewl_table_hhomogeneous_set(Ewl_Table *table, unsigned int h);
  81. void            ewl_table_vhomogeneous_set(Ewl_Table *table, unsigned int h);
  82. unsigned int    ewl_table_hhomogeneous_get(Ewl_Table *table);
  83. unsigned int    ewl_table_vhomogeneous_get(Ewl_Table *table);
  84.  
  85. /*
  86.  * Internally used callbacks, override at your own risk.
  87.  */
  88. void ewl_table_configure_cb(Ewl_Widget *w, void *ev_data, void *user_data);
  89. void ewl_table_show_cb(Ewl_Widget *w, void *ev_data, void *user_data);
  90. void ewl_table_child_configure_cb(Ewl_Widget * w, void *ev_data,
  91.                             void *user_data);
  92. //void ewl_table_child_show_cb(Ewl_Widget *w, void *ev_data, void *user_data);
  93. void ewl_table_child_select_cb(Ewl_Widget *w, void *ev_data, void *user_data);
  94. void ewl_table_child_show_cb(Ewl_Container *p, Ewl_Widget *c); 
  95.  
  96. /**
  97.  * @}
  98.  */
  99.  
  100. #endif                /* __EWL_TABLE_H__ */
  101.